1. Field of the Invention
The present invention relates generally to the field of transmitting digital data over a communications network, such as the Internet, and more particularly, to methods and systems of processing, combining, and mixing streaming media, especially video-based media, being received from multiple sources at differing locations into one or more time-synchronized media streams that are corrected or adjusted for variable transmission delays experienced during transmissions over communications networks.
2. Relevant Background
Webcasting or Internet broadcasting is a promising and rapidly expanding use for digital communication networks, such as the Internet. In general, webcasting is the Internet equivalent of analog television and radio broadcasting and involves the transmittal of media streams (or streaming media) comprising packets (i.e., data encoded in binary form to comply with a network transport protocol, such as Internet Protocol (IP), complete with headers having timing, identifying, and other information) of audio, video, animation, text, and the like. Once transmission begins, the packets are streamed or transmitted on an ongoing basis so that the end-user or receiving party can begin to use (i.e., hear, see, and otherwise use) the data before downloading an entire file. While bandwidth and other capacity limitations previously limited webcasting to providing audio and other lower capacity-requiring media, recent and expected advances in end-user computers, Internet connections, and media server hardware (such as the availability of 100 Kbps or faster connections) are enabling webcasters to deliver real time video content, too. Expected hardware and infrastructure advances will soon allow the delivery of entertainment quality, video-based media streams over the Internet and other communication networks to a significant number of end-users (e.g., residential computer and Internet users). With ever-increasing bandwidths, webcasters will most likely soon be able to compete for the audiences currently captured by traditional radio and television broadcasters.
Unfortunately, a number of problems and challenges make it very difficult for webcasted media to duplicate the fast-paced programming features and overall quality levels that are being achieved by broadcasters in the mature medium of television. For example, streaming media transmitted over a public communications network, especially one as large as the Internet, typically experiences variable transmission rates, and even varying rates for individual packets within a stream, due to packet collisions, congestion on the network, routing equipment delays, and other network reliability problems. These variable or non-deterministic delays make it difficult for a webcaster to coordinate multiple independent streams to avoid dead air or space when breaking between two media streams (i.e., to identify the “edit points” representing the beginning and ending of shows or portions of shows or files). Additionally, the variable delays can result in the end user or viewer seeing a jerky picture or hearing jitters in the received data and, when combined, related video and audio streams may not be properly time-correlated. Unlike deterministic delays, such as experienced for uplinking and downlinking satellite feeds in traditional television broadcasting, these variable transmission rates result in variable or non-deterministic delays that are difficult to overcome and which make programming webcasts problematic, especially those involving multiple sources and live webcast content.
Some efforts have been made to address variable delay in related audio and video data streams in an attempt to achieve synchronization (e.g., lip-synch) between the related streams. Others have addressed the variable delay problem in live and “taped” broadcasts by selectively serving or delivering the streaming media from a server located relatively near the end-user to minimize network delays and delay variability. Unfortunately, such a server-heavy system requires a large number of dedicated media servers. Additionally, neither of these approaches addresses the need for time-based synchronization of live and/or taped webcasts being transmitted from multiple networked sources.
Traditional television broadcasters have long had the ability to mix and switch analog transmissions from different and often remote locations into a single transmission that can be transmitted to a viewer who receives a transmission with a split screen and/or a screen with a picture within a picture (i.e., PIP) in which all of the pictures and sounds are time synchronized. This same type of time synchronization of multiple, independent data streams and manipulation of multiple streams into a single stream is demanded by end-users of streaming media. The tools to produce such programming are currently not available. Webcasters have responded by only broadcasting from one source (live or stored in memory) at a time and by generally allowing the broadcast media streams to include variable delays (appear jerky and lack time-based synchronization).
Another problem facing webcasters is that within the webcasting market, especially the video casting market, a large number of incompatible encoding and compression formats, hardware, and software have been developed (i.e., such as those developed by companies like Microsoft, RealNetworks, and VDO). This is significant because all webcasters employ some type of a compression and decompression (i.e., codec) scheme to deliver their streaming information over the communications networks at an acceptable data rate. Unfortunately, these various codec schemes are typically not compatible (for example, Microsoft's NETSHOW® computer program is incompatible with RealNetwork's REALMEDIA computer software Audio/Video standards), and end users are forced to download multiple media players (e.g., codec software) that are specific to the streaming media compression schemes they are receiving to make use of the streaming media. Presently, there are no effective tools that allow a webcaster to process, mix, and time-synchronize media streams encoded under different codec schemes to produce a combined output media stream or streams. This incompatibility of standards limits the ability of webcasters to effectively utilize the large breadth of sources of streaming media (i.e., webcast content) available when the webcasters are developing their webcasting products.
Consequently, there remains a need for methods and systems for providing time-based synchronization of media streams transmitted over a communications network from multiple, independent media sources. Preferably, such methods and systems will be capable of synchronizing media streams from two or more sources to allow sequential programming without gaps between streaming files. Additionally, it is preferable that the synchronization methods and systems allow combining, mixing, and switching of multiple media streams to produce output streams of data that are similar in quality (i.e., entertainment quality) and visual and audio effects as traditional television, such as mixing text, video, and audio, providing split and PIP screens, and the like. Additionally, it is preferable that such time-based synchronization methods and systems address the need for processing media streams from sources that utilize incompatible formatting and codec schemes.